﻿#include "mylabel.h"
#include<QDebug>
#include<QMouseEvent>
mylabel::mylabel(QWidget *parent) : QLabel(parent)
{
    //设置鼠标追踪
    //setMouseTracking(true);
}

void mylabel::enterEvent(QEvent *event)
{
    qDebug()<<"鼠标进来了";
}
void mylabel::leaveEvent(QEvent *)
{
    qDebug()<<"鼠标出去了";
}
 void mylabel::mousePressEvent(QMouseEvent *ev)//按下
 {
     if(ev->button()==Qt::LeftButton)
     {
             QString str = QString( "鼠标按下了  x=%1    y=%2    GloabX=%3    GloabY=%4"  ).arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
             qDebug()<<str;
     }

 }
 void mylabel::mouseReleaseEvent(QMouseEvent *ev)//释放
 {
     if(ev->button()==Qt::LeftButton)
     {
             QString str = QString("鼠标释放了  x=%1    y=%2    GloabX=%3    GloabY=%4").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
             qDebug()<<str;
     }
 }
 void mylabel::mouseMoveEvent(QMouseEvent *ev)//移动
 {
     if(ev->buttons() & Qt::LeftButton)
     {
             QString str = QString("鼠标移动了  x=%1    y=%2    GloabX=%3    GloabY=%4").arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
             qDebug()<<str;
     }
 }
  bool mylabel::event(QEvent *e)//通过事件分发器拦截事件
  {
      if(e->type()==QEvent::MouseButtonPress)
      {
          QMouseEvent *ev=static_cast<QMouseEvent*>(e);
          QString str = QString( "Event :: 鼠标按下了  x=%1    y=%2    GloabX=%3    GloabY=%4"  ).arg(ev->x()).arg(ev->y()).arg(ev->globalX()).arg(ev->globalY());
          qDebug()<<str;

          return true;//true代表用户自己处理这个事件，不向下分发

      }
      return QLabel::event(e);//其它事件交给父类处理 默认处理

  }
